package mest.dao.cxj;

import mest.VO.cxj.ProductOrderVO;
import mest.VO.cxj.ProductJobVO;
import mest.entity.bom;
import mest.entity.product_order;
import mest.entity.save_file;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Mapper
public interface ProductOrderDao {


    /**
     * 首页，所有单据表 (分页查询)
     *
     * @param page
     * @param limit
     * @return
     */
    List<ProductOrderVO> selectAllProductOrder(@Param("page") Integer page, @Param("limit") Integer limit,
                                               @Param("checkStatus") Integer checkStatus, @Param("cfName") String cfName,
                                               @Param("planDo") String planDo, @Param("planFinish") String planFinish,
                                               @Param("theirDb") String theirDb);

    /**
     * 查询生产单数量
     *
     * @return
     */
    Integer selectCountProductOrder(@Param("checkStatus") Integer checkStatus, @Param("cfName") String cfName,
                                    @Param("planDo") String planDo, @Param("planFinish") String planFinish,
                                    @Param("theirDb") String theirDb);


    /**
     * 添加生产单
     * @param po
     * @return
     */
    int insertProductOrder(@Param("po") product_order po, @Param("theirDb") String theirDb);


    /**
     * 修改生产单
     * @param po
     * @return
     */
    int updateProductOrder(@Param("po") product_order po, @Param("theirDb") String theirDb);


    /**
     * 修改生产单状态
     * @param poId
     */
    int updateProductOrderByStatus(@Param("poId") Integer poId, @Param("theirDb") String theirDb);


    /**
     * addProductInfo页面查询存货信息  (分页查询)
     *
     * @param page
     * @param limit
     * @return
     */
    List<ProductJobVO> selectProductInfo(@Param("page") Integer page, @Param("limit") Integer limit,
                                         @Param("commName") String commName, @Param("theirDb") String theirDb);


    /**
     * addProductInfo页面查询存货信息  (数量)
     */
    int selectProductInfoCount(@Param("commName") String commName, @Param("theirDb") String theirDb);


    /**
     * 查询某存货的物料信息
     *
     * @param bomId
     * @return
     */
    List<save_file> selectBomInfo(@Param("page") Integer page, @Param("limit") Integer limit, @Param("bomId") Integer bomId,
                                  @Param("theirDb") String theirDb);


    /**
     * addProductInfo页面查询存货信息  (数量)
     */
    int selectBomInfoCount(@Param("bomId") Integer bomId, @Param("theirDb") String theirDb);


}